So, this was the answer... I had to make the $zonas array which I was already doing as a sql statement that would complete the query, like this...
$zonas = 'SELECT z.parroquias_id
FROM m_zona_mercadeo z, m_tipo_zona_mercadeo t, m_rrhh r
WHERE r.usuario_id = '.$user->id.'
AND r.tipo_zona_id = t.id AND t.id = z.tipo_zona_id';
And the query ended up like this:
$criteria=new CDbCriteria;
$criteria->select='a.*';
$criteria->alias='a';
$criteria->join='INNER JOIN (SELECT ad.aliados_id
FROM aliados_direccion ad
WHERE ad.parroquias_id IN ('.$zonas.')
UNION
SELECT acm.aliados_id
FROM aliados_centro_medico acm, centro_medico cm
WHERE cm.id = acm.centro_medico_id
AND cm.parroquias_id IN ('.$zonas.')) u
ON u.aliados_id = a.id';