То есть вы понимаете о чем я? Думаю да, понимаю. 9

То есть вы понимаете о чем я?

Думаю да, понимаю. 99% расклад такой: не зависимо от того, какое у вас условие на уровне шаблона (я про [[!If?), чанки [[$fullTemplate]] и [[$mobileTemplate]] будут отработаны в любом случае. Это особенности MODX-парсера. Это вам не чистый php, где если условие if() не выполнилось, то и внутри него ничто не выполнится. А здесь If — это даже не функция, а просто тег (если говорить про шаблонизацию). В результате он или выведет, или не выведет результат. Но результат внутри в любом случае будет, то есть внутренние теги отработаются.

Это одна из серьезных таких причин, по которой мы используем modxSmarty, а не нативную шаблонизацию MODX-а. На уровне Smarty это было бы так:

{$modxSiteTemplate = $modx->getPlaceholder('modxSiteTemplate')}
{if $modxSiteTemplate == 'full'}
    full
    {chunk name=fullTemplate}
{else if $modxSiteTemplate == 'mobile'}
    mobile
    {chunk name=mobileTemplate}
{/if}

Вот тут четко будет или одно выполнено, или другое.

Если хотите делать на чистом MODX-е, тогда не сниппет If вызывать надо, а свой сниппет напишите, который четко по условию будет вызывать тот или иной чанк.

return $modx->getChunk($chunkName);

P.S. Код надо оборачивать в теги <code> ?