Esto se trata en el capítulo del manual de MySQL sobre Requisitos de almacenamiento . No hay una respuesta simple; depende del tipo de datos de la columna, si la columna está indexada; y el motor de almacenamiento. El impacto de usar NULL para una columna puede variar desde nada hasta varios bytes (dependiendo de cuántas otras columnas también admitan NULL).
El impacto de almacenamiento de declarar que una columna acepta NULL y de almacenar un valor NULL es probablemente menor. Tener una columna con muchos valores NULL a menudo indica la necesidad de (más) normalización.
La regla básica es diseñar su esquema en función de las propiedades de los datos, no del impacto del almacenamiento. Arregla las cosas solo si resultan ser un problema.