I don't think the function mosLoadModules() has any return. It only "echo"s its content.
So you have mosLoadModules echoing the module content, then returning null. So you see the echoed content first, and nothing appended to the article.
You might want to use the "After Content" event. That will add the output after the article, in the order of the plugins in the Administration Panel.
If you want the output right after the article, then you can use the onprepare event, and buffer the output of your mosLoadModules() call, using output buffering:
$joomla_out = ob_get_contents();
ob_clean();
mosLoadModules ('position', 2);
$modules_out = ob_get_contents();
ob_clean();
echo $joomla_out;
$row->text = $modules_out;
Not the most efficient way, but it should work.