Вы, кажется, используете это внутри функции PL / pgSQL.Вместо этого вы должны использовать SELECT ... INTO variable FROM...
:
declare
ids_list character varying[];
begin
.....
select array_agg(id)
into ids_list
from (
select house_guid
from tab
union
select guid
from tab
) t;
.... work with the ids_list variable
end;
UNION
автоматически удалит все дубликаты (как вы пытались сделать с DISTINCT
.