она может быть не заполнена (null).
Она заполнена. NULL это валидное значение, такое же как и любое другое.
или сделать отдельную таблицу с этой колонкой
Лишнее. Это дополнительный запрос или JOIN. Выигрыша ноль.
Почитайте про кардинальность. Нету ничего плохого в том, чтобы часть записей имело NULL в колонке, которая не является обязательной. Вот если таких колонок становится много и их все условно можно отнести в категорию secondary/metadata - например, они не используются на выводе "все пользователи" (индекс), а нужны только при просмотре одного конкретного пользователя - вот тогда можно думать о том, чтобы выносить эти данные в отдельную таблицу. Например, будет users и user_data, в которой и будут эти колонки. На индексе вы будете запрашивать только users, на одном пользователе - обе таблицы.