This is a bug in the new mongos read path, so it only affects the master branch. It does not affect any stable versions.
The following script reproduces the problem:
(function() { 'use strict'; var st = new ShardingTest({shards: 1}); var sdb = st.s.getDB("test"); var coll = sdb.sortkey_internal_error; coll.drop(); assert.writeOK(coll.insert({_id: 1, a: 2})); assert.eq(1, coll.find({_id: 1}).sort({a: 1}).itcount()); st.stop(); })();
Looks like a bad interaction between idhack and sortKey meta-projection.