Czy tego chcesz?
select coalesce(cast(id as varchar(255)), '')
from #v;
Musisz zamienić całą kolumnę wyników w pojedynczą kolumnę. Jeśli chcesz pustą wartość, to typem jest jakiś ciąg znaków.
W twoich przykładach else id oznacza, że wynik z case jest liczbą całkowitą, dlatego otrzymujesz albo 0 lub NULL .