Посмотри еще раз внимательно мой запрос: $c = $mod

Посмотри еще раз внимательно мой запрос:

$c = $modx->newQuery('modResource');
$c->leftJoin('modTemplateVarResource', 'TemplateVarResources');
$c->leftJoin('modTemplateVar', 'tv', "tv.id=TemplateVarResources.tmplvarid");

$c->where(array(
    array(
        "tv.name"   => 'icon',
        "TemplateVarResources.value"    => "example-icon",
    ),
    array(
        "OR:tv.name:="   => 'isCosmos',
        "TemplateVarResources.value"    => "IS",
    ),
));

Там не AND:, там OR:. И формируется вот такой SQL-запрос:

SELECT modResource.* 
    FROM `modx_site_content` AS `modResource` 
    LEFT JOIN `modx_site_tmplvar_contentvalues` `TemplateVarResources` ON `modResource`.`id` =  `TemplateVarResources`.`contentid` 
    LEFT JOIN `modx_site_tmplvars` `tv` ON tv.id=TemplateVarResources.tmplvarid 
    WHERE  (  
        ( `tv`.`name` = 'icon' AND `TemplateVarResources`.`value` = 'example-icon' )  
        OR  
        ( `tv`.`name` = 'isCosmos' AND `TemplateVarResources`.`value` = 'IS' )  )

Поверь, у меня есть понимание SQL-запросов :) Так что я знаю, что говорю.