If you want a single row at a time you can do this:
declare @string varchar(255), @col1_value varchar(25)
set @string = ''
set @col1_value = 'A'
select @string = @string + col2 + ' '
from table_1
where col1 = @col1_value
print @string
If you want multiple rows, you might want to put the code into a User Defined Function (pass in Col1, return denormalised string) and then do something like this:
select distinct col1, dbo.fn_Denormalise(col1)
from table_1
I'm not sure whether this would be any quicker than your coding but it is an alternative.
Jeremy