cerco di spiegarmi meglio: la funzione che vuoi utilizzare array_unique crea un array con tutti i valori contenuti una sola volta eliminando le copie. Se vuoi appunto ottenere qualcosa del genere:

array(2) { [0]=> int(1) [1]=> int(2) }

devi semplicemente fare questa chiamata:

Codice PHP:
$id[0]=1;
$id[1]=1;
$id[2]=1;
$id[3]=1;
$id[4]=2;
$id[5]=2;

$clean array_unique($id); 
a questo punto $clean contiene un array copia del precedente al quale però sono stati tolti i doppioni. $clean conterrà pertanto i valori del precedente array presi SOLO UNA VOLTA: non ci sono valori vuoti o nulli. Se infatti fai una stampa di $clean vedrai che nel caso di esempio avrà solamente due elementi di valore 1 e 2, non ci saranno elementi vuoti o nulli.

EDIT: le chiavi in più vengono eliminate automaticamente