You need to put the markers into the MarkerClusterer after they have been loaded in the AJAX callback.
$.getJSON('getLatLon.php',{ajax:'false'},function(jsonData){
$(jsonData).each(function(){
var latLng = new google.maps.LatLng(this.lat,this.lon);
var marker = new google.maps.Marker({'position': latLng});
markers.push(marker);
});
var markerCluster = new MarkerClusterer(map, markers);
});
You may want he markerClusterer in the global (or at least a larger) scope, but this should at least show the markers.