Debe devolver el $result solo en el run() método:
public function run($sql)
{
$result=$this->_connection->prepare($sql);
$result->execute();
return $result;
}
Devolviendo el $result->execute(); está devolviendo true porque el run() logrado Debe devolver el estado actual de $result .
A ver si eso funciona.