Eso que dices no se puede hacer en un solo query ya que son 2 condiciones excluyentes una de la otra, si es valor entonces que no sea null y si es null entonces que no tenga un valor, por lo que deberias de hacer un script mas o menos como este:
Código SQL:
Ver originalIF (isnull(@descripcion,'')=''
BEGIN
SELECT * FROM Personas p WHERE p.Descripcion = NULL
END
ELSE
BEGIN
SELECT * FROM Personas p WHERE p.Descripcion = @descripcion
END