Ragazzi ho risolto...con un idea semplice ma geniale.

Il tutto è nato pensando: "cosa cambia tra una pagina senza filtri ed una pagina con un filtro?"

La risposta logica è una variabile in più passata tramite POST o tramite GET, siccome sto usando GET per queste cose sciocche tipo ordinamento, pagina, marca, fascia di prezzo ho continuato su questa strada creando 3 funzioni:
Codice PHP:
function url_get()
function 
url_add()
function 
url_remove() 
che catturano l'attuale query url e aggiungono o rimuovono una delle variabili restituendo alla fine la nuova query url in forma di stringa.

In questo modo se io ho:
codice:
http://www.miosito.it/idcategoria=4&ordinamento=1&pagina=3&marca=amd&prezzo=0,100
posso o aggiungere o rimuovere una delle variabili (es. pagina=3) quindi posso generare tutte le combinazioni che voglio.
Siccome quando si applica un filtro lo si applica uno alla volta può variare un solo elemento tra la query corrente e la successiva

Tramite questa cosa posso gestire tutti i filtri che voglio senza alcuna difficolta o pasticcio.
Mi sono inoltre creato anche una funzione che mi serve a costruire la clausola WHERE con i vari eventuali filtri in modo da estrapolare la corretta lista di prodotti dal database.