How can I make db_select recognize an empty field?
Just do a left join on 'files_managed' table

$query = db_select('node', 'n');
$query-&gt;join('users', 'u', 'n.uid = u.uid');
$query-&gt;leftjoin('file_managed', 'f', 'f.fid = u.picture');
$query-&gt;fields('f',array('uri'));
$query-&gt;fields('n',array('nid'));
$query = $query-&gt;execute();
dpm($query-&gt;fetchAll());