Primero, est´s complicando innecesariamente ese SP. No necesitas dos sentencias y la variable para lo que haces, sino sólo una:
Que también se puede escribir:
Y para negarlo sería:
o bien:
Nota final: en tu SP, "name" y "@name" son dos variables diferentes.
Las variables locales se declaran y se usan sin "@".
Las variables con "@" son variables de tipo sesión, que no se declaran sino que se incializan, y su valor inicial es NULL.
En tu caso está funcionando porque el primer SELECT la está inicializando con un valor dado, pero eso significa que la "name" es inútil.