Se o campo for de largura fixa, armazenar NULL ocupará o mesmo espaço que qualquer outro valor - a largura do campo.
Se o campo for de largura variável, o valor NULL não ocupará espaço.
Além do espaço necessário para armazenar um valor nulo, há também uma sobrecarga por ter uma coluna anulável. Para cada linha, um bit é usado por coluna anulável para marcar se o valor dessa coluna é nulo ou não. Isso é verdade se a coluna for de comprimento fixo ou variável.
O motivo das discrepâncias que você observou nas informações de outras fontes:
-
O início do primeiro artigo é um pouco enganador. O artigo não está falando sobre o custo de armazenar um valor NULL, mas o custo de ter a capacidade para armazenar um NULL (ou seja, o custo de tornar uma coluna anulável). É verdade que custa algo em espaço de armazenamento para tornar uma coluna anulável, mas depois de fazer isso, é necessário menos espaço para armazenar um NULL do que para armazenar um valor (para colunas de largura variável).
-
O segundo link parece ser uma pergunta sobre o Microsoft Access. Não conheço os detalhes de como o Access armazena NULLs, mas não ficaria surpreso se fosse diferente do SQL Server.