Isso é porque o console do browser também mostra o retorno do console.log. E segundo a documentação, ele sempre retorna undefined.
Teste, por exemplo, com console.log(10). Vai mostrar o 10, e depois o undefined (primeiro ele imprime o 10, e depois o browser mostra o retorno do console.log).
Ou ainda, typeof console.log(10). Vai mostrar o 10 (pois é o console.log imprimindo o valor), e depois undefined, pois o retorno de console.log é o valor undefined.
Se você fizer isso fora do browser (por exemplo, num arquivo .js separado, e rodando com o Node), vai ver que no seu caso só vai imprimir null.
Ou ainda, outro teste. Crie uma função que imprime o valor, e retorna "ok":
function imprime(algo) {
console.log(algo);
return 'ok';
}
let teste = null;
imprime(teste);
No console do browser, vai imprimir null (o valor de teste), e depois vai mostrar 'ok' (o retorno da função imprime). Testando fora do browser, vai mostrar somente null.
