Puede que estés intentado grabar un nulo en un campo que forma parte de la clave primaria.
El campo puede estar tal y como dices, permitir longitud cero a Sí y requerido a No, pero si es parte de una clave primaria, o de cualquier otro índice que no acepte nulos, ese puede ser el motivo de tu error
Un saludo