Porque en lugar de ponerle NULL, o no poner el campo en la lista, estás metiendo un espacio vacío (''). Y un espacio vacío
no es NULL, ni tampoco lo es poner la palabra "NULL" como cadena de texto.
Por cierto, esto ya te lo respondí en el Foro de PHP (
http://www.forosdelweb.com/f18/not-null-null-1033631/).
No lo leíste o no se entendió?