Edit- Looking at updated details in question, I suspect your list have more than 8 look up columns. And in query we are not passing viewfields and hence it is trying to return all fields. Can you pass viewfield tag with ID column and see if it works.
I just tried below code and used your CAML query for a List which has 115080 items and threshold is set to 20000. I got expected Item's ID. Please refer below. You assumptions is correct is should return data irrespective of happy hours....
function retrieveListItems() {
var clientContext = new SP.ClientContext(_spPageContextInfo.siteAbsoluteUrl);
var oList = clientContext.get_web().get_lists().getByTitle('MYList');
var camlQuery = new SP.CamlQuery();
camlQuery.set_viewXml('<View Scope="RecursiveAll"><Query><OrderBy><FieldRef Name="ID" Ascending="False" /></OrderBy></Query><RowLimit>1</RowLimit></View>');
this.collListItem = oList.getItems(camlQuery);
clientContext.load(collListItem);
clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed));
}
function onQuerySucceeded(sender, args) {
var listItemInfo = '';
var listItemEnumerator = collListItem.getEnumerator();
while (listItemEnumerator.moveNext()) {
var oListItem = listItemEnumerator.get_current();
listItemInfo += '\nID: ' + oListItem.get_id();
}
alert(listItemInfo.toString());
}
function onQueryFailed(sender, args) {
alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
}
Below is response I got, last item id shown in alert.
Hope this helps...Happy coding..!!!