in teoria dovrebbe andar bene, però puoi provare con:
$Query = "INSERT INTO MiaTabella (UserID,Nick) VALUES ('$UserID', '$NickChosen')";
però occhio che $UserID e $NickChosen non devono contenere apici !!
eventualmente puoi trasformare il tutto in
$Query = "INSERT INTO MiaTabella (UserID,Nick) VALUES ('".str_replace("'","''",$UserID)."', '".str_replace("'","''",$NickChosen)."')";
Se ancora non funziona devi lavorare ad un livello ancora più basso fino a quando trovi che cosa non funziona, per cui trasformi la tua query in
$Query = "INSERT INTO MiaTabella (UserID,Nick) VALUES ('MioID', 'MioNick')";
in modo da togliere le variabili di PHP e vedere se così lo inserisce, è solo un test per capire se il problema è la query o le variabili
Altra cosa che mi è venuto in mente è che il campo UserID se ha un indice univoco devi cancellare l'indice e ricrearlo, perchè se hai cambiato il tipo campo da Int a Varchar può essere che l'indice non è stato ricreato con il tipo giusto