Во-первых, exists
кажется излишним, поэтому:
SELECT TOP (1) p.IsTeacher From Personnel p Where p.PersonnelPK = @PersonnelPK;
Если нет подходящей строки, это не возвращает строк.
Во-вторых, мне совершенно непонятно, почему вы бы использовали хранимую процедуру, как это. Вы можете создать пользовательскую скалярную функцию, которая кажется более полезной.