Вы можете использовать json_agg () для этого:
select main_message_id, json_agg(message) as messages
from the_table
group by main_message_id;
Обратите внимание, что {test1}{test2}{test3}
недействительно JSON, приведенное выше вернет действительный массив JSON, например ["test1", "test2", "test3"]
Если вы хотите получить список через запятую, используйте string_agg ();
select main_message_id, string_ag(message, ', ') as messages
from the_table
group by main_message_id;