print '<pre>';
$q = $modx->newQuery('msProduct');
$alias = $q->getAlias();
$q->select(array(
"{$alias}.*",
));
$tv_id = 1;
$q->innerJoin('modTemplateVarResource', 'ps_type', "ps_type.tmplvarid = {$tv_id} AND ps_type.contentid = msProduct.id AND (
(FIND_IN_SET('Значение1', replace('||', ',', ps_type.value)) AND (FIND_IN_SET('Значение2', replace('||', ',', ps_type.value))))
OR (FIND_IN_SET('Значение1', replace('||', ',', ps_type.value)) AND (FIND_IN_SET('Значение2', replace('||', ',', ps_type.value)) AND FIND_IN_SET('Значение3', replace('||', ',', ps_type.value))))
)");
$s = $q->prepare();
$sql = $q->toSQL();
print "<br />" . $sql . "\n";
$s->execute();
print_r($s->errorInfo());
while($row = $s->fetch(PDO::FETCH_ASSOC)){
print_r($row);
}