drupal_mail to users selected from database
On a first glance, it's because you are passing the whole object instead of the email address. Try this:

  $sql = db_select('users', 'u');
  $sql-&gt; fields('u', array('mail'));
  $sql-&gt; condition('uid', $value['uid']);
  $mail = $sql-&gt;execute();
}
foreach($mail as $m){
  dsm($m);
  drupal_mail('event_manager','event_approved', $m-&gt;mail, language_default());
}