Your markerClusterer is defined inside the callback to downloadUrl, and isn't accessible outside of that scope.
The simplest fix is to define it in the global context.
var map;
var gmarkers = [];
var markerClusterer = null;
function initialize() {
then in the downloadUrl callback:
downloadUrl("./includes/AjaxMarkers.php?maxlat="+North_Lat+"&minlat="+South_Lat+"&minlong="+South_Lng+"&maxlong="+North_Lng+"&zoom="+Zoom_Level, function(data) {
var xml = xmlParse(data);
var markers = xml.documentElement.getElementsByTagName("marker");
for (var i = 0; i < markers.length; i++) {
createMarker(parseFloat(markers[i].getAttribute("lat")), parseFloat(markers[i].getAttribute("lng")), markers[i].getAttribute('titre'));
}
markerClusterer = new MarkerClusterer(map, gmarkers);
});