N1QL parallel queries return random empty or incomplete results

Actually, I think you might be hitting https://issues.couchbase.com/browse/MB-22184 . The reason is that something is messed up if the java client pipelines requests - which you implicitly avoid when you have the number of query endpoints per threads, since then never more than 1 request is pending on a socket.