Hmmm, when I try it, I get multiple rows back (I desire to only get one row back):

;WITH Blah(col1, i) as
(
          SELECT 'abc',1
    UNION SELECT 'def',2
    UNION SELECT 'ghi',3
)

SELECT array_join(collect_set(col1) over (order by i), ',')
FROM Blah

Results:

abc
def,abc
def,ghi,abc