Доброе утро.
Приблизительно так:
$query1 = new \yii\db\Query();
$query1->select('userparam.*')
->from('userparam')
->where(['userparam.id' => 'param.id'])
->andWhere(['userparam.user_id' => 42])->one();
$query2 = new \yii\db\Query();
$query2->select('catparam.*')
->from('catparam')
->where(['catparam.parameter_id' => 'param.id'])
->andWhere(['in', 'catparam.category_id', [1,2]])->all();
$params = Param::find()
->select('id')
->where(['not exist' => $query1])->andWhere(['exists' => $query2])->all();
Подробней
тут и
тут.
p.s. Будут в запросе ошибки, проверить не могу.)))