Остановился на таком решение - в таблице комментариев добавил поле reply_ids которое хранит список id последних дочерних комментариев. Первым запросом получаю всех родителей. Со всех родителей собираю reply_ids в один массив. Вторым запросом получаю список дочерних комментариев по reply_ids. Ну и потом каждому родительскому комментарию добавляю атрибут replies с его дочерними комментариям, если они есть.