Olá Miguel, tudo bom?
Na verdade as funcionalidades são diferentes, ambas verificam se são nulas, é claro.
Então a diferença é que uma verifica se a string é composta por espaços em branco enquanto o outro observa somente o tamanho da string.
IsNullOrEmpty - Observa se é nulo e se tem ao menos 1 caractere (independente de qual).
IsNullOrWhiteSpace - Observa se é nulo e se é composto somente por espaços em branco.
Você pode ver também que este tópico foi resolvido no stackOverFlow:
https://pt.stackoverflow.com/questions/172694/qual-%C3%A9-a-diferen%C3%A7a-entre-isnullorempty-e-isnullorwhitespace
Se quiser um exemplo mais claro de usabilidade, verifique o link acima.
Grato desde já, espero ter contribuído.