É isso que voce quer?
select coalesce(cast(id as varchar(255)), '')
from #v;
Você tem que transformar toda a coluna de resultado em uma única coluna. Se você deseja um valor em branco, o tipo é algum tipo de cadeia de caracteres.
Em seus exemplos, o
else id
significa que o resultado do case
é um número inteiro, e é por isso que você está recebendo 0
ou NULL
.