NULLs em chaves estrangeiras são perfeitamente aceitáveis. Lidar com NULLs em chaves estrangeiras é complicado, mas isso não significa que você altere essas colunas para NOT NULL e insira registros fictícios ("N/A", "Desconhecido", "Sem valor" etc) em suas tabelas de referência.
O uso de NULLs em chaves estrangeiras geralmente requer o uso de LEFT/RIGHT JOIN em vez de INNER JOIN.