A prima vista mi pare che la tua tabella contenga principalmente le città, ossia contiene il nome delle città e per ognuna di queste ha il valore della Regione e della Nazione.

Indi per cui, se così fossi puoi utilizzare la clausola MySQL GROUP BY per raggruppare i record in base al valore che devi prendere.

Esempio:

Codice PHP:

$query_nazione 
"SELECT Nazione FROM location GROUP BY Nazione ORDER BY Nazione ASC";

$query_regione "SELECT Regione FROM location GROUP BY Regione ORDER BY Regione ASC";

$query_citta "SELECT Citta FROM location ORDER BY citta ASC"
GROUP BY ha il compito di raggruppare tutti i record in base al campo selezionato, per cui nel primo caso andrà a raggruppare tutti i record in base al nome delle nazioni, quindi, dove il nome delle nazioni è uguale, verrà visualizzato un solo record.

Nel caso delle città non dovrebbe servire, ma se servisse masta aggiungere prima di ORDER BY: GROUP BY Citta

Un'altra alternativa è utilizzare la funzione sempre del MySQL DISTINCT()

Esempio:

Codice PHP:

$query_nazione 
"SELECT DISTINCT(nazione) FROM location ORDER BY nazione ASC";

// E così via le altre queries 
DISTINCT esegue più o meno la stessa funzione di GROUP BY, per cui visualizza tutti i record, in questo caso delle nazioni, raggruppando là dove il campo da distinguere è uguale.