Так вы вызывайте так, чтобы передаваемый id был id документа нужного уровня. Если у вас этот скрипт возвращает Категорию (что по логике должно быть родителем для подкатегории), соответственно в сниппете надо возвращать pagetitle не родителя, а самого документа, модифицируйте скрипт, включайте мозги.
$q = $modx->newQuery('modResource', $id); $q->select(array( "modResource.pagetitle", )); return $modx->getValue($q->prepare());