Lo que sucede es que un valor vacio
es un valor vacio y NULL
no es ningun valor. Hay mucha info por ahi del tema.
Sobre lo del valor predeterminado en la base de datos se usa cuando vos insertas una fila y no le asignas ningun valor a la columna con valor predeterminado, ahi se usa.
Por ejemplo, si tenes la tabla autos, columnas color y marca. Si a color le asignas un valor predeterminado de "blanco", se va utilizar cuando vos hagas algo asi:
Esa consulta va a generar una fila en donde la marca es Honda y el color es blanco(aunque no lo hayas definido el color en la consulta).
Por eso te recomiendo que hagas una especie de filtro para cambiar los valores '0'(cero) o ''(vacio) a NULL antes de insertarlo a la base de datos.(como esta en mi primer respuesta
![Afirmando](http://static.forosdelweb.com/fdwtheme/images/smilies/afirmar.gif)
)
Espero que me haya explicado bien, Saludos