Зависит от того, какой механизм хранения вы используете.
В формате MyISAM каждый заголовок строки содержит битовое поле с одним битом для каждого столбца для кодирования состояния NULL. Столбец со значением NULL по-прежнему занимает место, поэтому значения NULL не уменьшают объем памяти. Смотри https://dev.mysql.com/doc/internals/en/myisam-introduction.html
В InnoDB каждый столбец имеет «смещение начала поля» в заголовке строки, которое составляет один или два байта на столбец. Старший бит в этом смещении начала поля включен, если столбец равен NULL. В этом случае столбец не нужно хранить вообще. Так что, если у вас много NULL, ваше хранилище должно быть значительно уменьшено.
Смотри https://dev.mysql.com/doc/internals/en/innodb-field-contents.html
EDIT:
Биты NULL являются частью заголовков строк, вы не хотите добавлять их.
Единственный способ, которым я могу представить, что NULL улучшают производительность, - это то, что в InnoDB страница данных может занимать больше строк, если строки содержат NULL. Так что ваши буферы InnoDB могут быть более эффективными.
Но я был бы очень удивлен, если бы это обеспечило значительное преимущество в производительности на практике. Беспокойство о влиянии NULL на производительность лежит в области микрооптимизации. Вы должны сосредоточить свое внимание в другом месте, в областях, которые дают больший удар для доллара. Например, добавление правильно выбранных индексов или увеличение выделения кэша базы данных.