Podrías probar cambiando está línea:
Código PHP:
ajax.open("GET", "cambia_idioma.php?idioma="+idioma, true);
Por esta:
Código PHP:
ajax.open("GET", "cambia_idioma.php?idioma="+idioma+'&'+new Date().getTime(), true);
Eso sería para evitar la caché que a veces es lo que genera problemas en Explorer. Quizá funcione, aunque no es seguro (en realidad hay que mejorar bastante ese código AJAX).
De cualquier manera, me parece ridículo usar AJAX de esa manera: para qué si luego termina refrescándose la página?
Creo que hubiera sido más práctico redireccionar directamente al archivo que actualiza la variable de sesión y, desde ese mismo archivo, volver a redireccionar a la página que solicitó el refresco, todo eso sin AJAX.