Il group by serve a formare dei raggruppamenti di record a cui applicare una funzione ... di raggruppamento. Quindi costituisci un gruppo, e applichi su di esso COUNT, SUM, ecc...

Se invece devi estrarre uno specifico record .. una delle due.. o conosci un dato univoco tipo l'id, oppure fai un ordinamento ed estrai il record ordinato limitando la ricerca con LIMIT.

Si possono utilizzare altri sotterfugi ... tipo la costruzione di tabelle temporanee da popolare con dati specifici e poi fare un raggruppamento su di essi...

Potrebbe anche funzionare, ma bisognerebbe avere la tabella sottomano per fare prove, la condizione HAVING... Prova:
codice:
SELECT * FROM prodotti 
WHERE subcat = '1' 
GROUP BY nome, priorita
HAVING priorita = 1 
ORDER BY nome DESC 

oppure 

SELECT * FROM prodotti 
WHERE subcat = '1'
AND priorita = '1' 
GROUP BY nome, priorita
ORDER BY nome DESC