A un campo datetime en MySQL se le asigna un valor por default, comúnmente es
0000-00-00 00:00:00. En tu caso es
0000-00-00, ésto quiere decir que si en la query se le pasa un valor núlo, el registro tomará 0000-00-00 como valor automáticamente porque es el valor default. Así que tu código PHP no es el del problema