Há um bom artigo aqui que discute este ponto. As principais coisas a serem observadas são que não há diferença no tamanho da tabela, no entanto, alguns usuários preferem usar uma string vazia, pois isso pode facilitar as consultas, pois não há uma verificação NULL a ser feita. Você apenas verifica se a string está vazia. Outra coisa a notar é o que NULL significa no contexto de um banco de dados relacional. Isso significa que o ponteiro para o campo de caractere está definido como 0x00 no cabeçalho da linha, portanto, não há dados para acessar.
Atualizar Há um artigo detalhado aqui que fala sobre o que realmente está acontecendo em uma base de linha
o resultado de DBCC PAGE mostra que tanto as strings NULL quanto as vazias ocupam zero bytes .