I have a query tagged QueryAlterableInterface that I need to add an item to the IN clause
Ok here's what happened. Basically, I had to unset the conditions and then just rewrite all of them. Any better solutions I will accept as the answer but this is how I solved it.

$where =&amp; $query-&gt;conditions();

if(empty($where[1])) {
  return;
}

unset($where['1']);
$list = my_custom_function_to_get_groups();

$groups = array();

foreach($list as $group) {
  if(!empty($group-&gt;nid)) {
    $groups[] = $group-&gt;nid;     
  }
}

$query-&gt;condition('ga.gid', $groups, 'IN');