Обидва варіанти граматично правильні, але вживаються трохи по-різному:
I haven’t - найпоширеніший і природний варіант, особливо в розмовній англійській, зокрема в американській.
I’ve not - вживається рідше, більш характерне для британської англійської або формальнішого стилю.