vc criou um loop infinito
.
$this->get_news_comment($id_news, $level+1, $row['id_comment']);
.
o return $news; nunca será executado, e de quebra ainda vai estourar a
pilha :D
.
if (condicao) {
...return $news;
}
else $this->get_news_comment($id_news, $level+1, $row['id_comment']);
.
o return vindo primeiro elimina a ocorrência de recursão infinita,
visto que um valor será consumido antes de entrar na recursão ..
.
vc pode usar o $count para parar a recursão, basta saber com
antecedencia quantas vezes serão executadas.
ou vc pode parar, não havendo mais parents ..
.
como seu algoritmo ficou meio confuso (não entendi) .. só dá pra
comentar isso