Altere sua condição para isso:
where (@LastName = 'All' and 1=1) or (LastName = @LastName)
A ideia é que quando
@LastName
='All' então sua consulta não deve ter nenhum filtro. A condição 1=1 será sempre verdadeira, e junto com a outra verificação deverá retornar todos os resultados. O outro caminho que a consulta pode seguir é a filtragem por um sobrenome específico, que definitivamente deve excluir valores nulos. Atualização:A condição 1=1 é redundante. Você pode reescrever a condição como:
where (@LastName = 'All') or (LastName = @LastName)
Demonstração