Dal manuale di MySQL
Quindi se non specifichi un valore per la data e non hai esplicitato tu un valore di default per quel campo, MySQL lo pone al valore equivalente a zero per quel tipo di dato, che sarà 0000-00-00By default, when MySQL encounters a value for a date or time type that is out of range or otherwise invalid for the type, it converts the value to the “zero” value for that type. The exception is that out-of-range TIME values are clipped to the appropriate endpoint of the TIME range.
In questa situazione, per verificare se il campo è vuoto devi vedere in realtà se contiene appunto 0000-00-00 o altro.
Se vuoi che il campo vuoto sia NULL, allora in fase di creazione della tabella devi specificare "DEFAULT NULL" per quel campo.