Guardando il codice la parte relativa alla costruzione della query al database è questa:
codice:
// Format the exclusions as a part of the DB query
if ($exclusions)
{
    $exclusions = str_replace(" ","",$exclusions);
    while (substr($exclusions,0,1) == ",")
        $exclusions = substr($exclusions,1,strlen($exclusions)-1);
    while (substr($exclusions,strlen($exclusions)-1) == ",")
        $exclusions = substr($exclusions,0,strlen($exclusions)-1);
    $exclusions = str_replace( ",", ") AND (catid != ","AND (catid != ".$exclusions.")");
}

// Approved only?
if ($approved)
    $approved = "AND approved";

// Query every published record in the image table
$database->setQuery("SELECT * FROM #__ponygallery WHERE published $approved $exclusions");
$images = $database->loadObjectList();
dove, leggendo i dati proveninenti dai parametri passati tramite GET si escludono determinate categorie e si escludono tutte le immagini non approvate.

Quindi è su questa parte di codice che si deve agire...sarebbe utile avere un esempio del link che porta alla visualizzazione delle immagini in modo da avere un quadro migliore della situazione.

Comunque credo, ma è una mia opinione, che la strada più rapida è invece di escludere determinate categorie, fare il contrario...ovvero selezionare solo alcune (meglio se una sola) categorie.

Sostanzialmente ciò si tradurrebbe sostituendo:
codice:
    $exclusions = str_replace( ",", ") AND (catid != ","AND (catid != ".$exclusions.")");
con:
codice:
    $exclusions = str_replace( ",", ") AND (catid != ","AND (catid = ".$exclusions.")");
oppure con:
codice:
    $exclusions = str_replace( ",", ") AND (catid = ","AND (catid = ".$exclusions.")");
però questo dipende ovviamente dai parametri passati....