Since it goes in the template, you could use a different template (without the snippet) for pages you don’t want to protect.
Or, (a little slower, but more convenient) you could modify the snippet to ignore pages using a property (let’s call it &ignore) in the snippet tag:
[[!Protect? &ignore=`12,14,56`]]
<?php
/* Protect Snippet */
$docs = explode(',', $scriptProperties['ignore'];
if (in_array($modx->resource->get('id'), $docs) {
return "";
}
if (! $modx->user->hasSessionContext('web')) {
$modx->sendRedirect($modx->makeUrl(12) ); // ID of Login page
}