Как в Yii обновить без foreach для всех моделей, результат выборки find..()?
Вообще не пишите find тогда и не работайте с моделью Category. Работайте с той моделью, которую обновлять собираетесь.
Могу предположить, что примерно так:Descedant::model()->updateAll(array('exist' => 0), 'category_id=1');
Если хотите именно массив выбранных AR обновлять и не хотите foreach писать ни в какую, то можно array_walk применить php.net/manual/en/function.array-walk.php
Если я правильно понял, то попробуйте так:$category=Category::model()->findByPk(1);
$descendants=$category->descendants()->findAll();
$ids = array_map(function($descendant) {
    return $descendant->id;
}, $descendants);

Category::model()->addInCondition('id', $ids)->updateAll(array('exist' => 0));