Doing:
echo $site_info['title'];
Will only display the word 'Array' if the function worked, or nothing as is the case. This is because you are returning an array, of an array. Therefore, something like this should work:
echo $site_info[0]['title'];
However, if you are getting no return obviously an error is present. I do know that it is pointless doing:
$this->item = "";
Which you do on the first line of the method. You are basically casting an array as a string. However, I would assume PHP would cast the string to an array upon appending an element, so that should not really cause a problem.
From my quick glance, I cannot really see the problem at hand which would cause nothing to be returned besides the possibility that config has no rows - which I assume is not the case.