En primer lugar un NULL en PHP no es igual a NULL de SQL, ¿si entiendes por qué?
Para poder ingresar un NULL dentro de una consulta debe ser literal, si usas un NULL nativo de PHP pues no colocará nada.
Código PHP:
// MAL
$foo = NULL;
echo "SET columna = '$foo'"; // SET columna = ''
// BIEN
$foo = 'NULL';
echo "SET columna = $foo"; // SET columna NULL
Además de que un valor NULL para SQL debería ir sin comillas pues es un tipo de dato nativo, no una cadena de texto.