Some interactive debug show that the problem also happen with direct query on hostname, and in that case, the LDAP seems to return adequate result:
[2015-05-21 14:47:54] DEBUG com.normation.rudder.services.queries.InternalLDAPQueryProcessor - [0] Start search for { returnType:'NodeReturnType' with 'And' criteria [node.nodeHostname eq XXXXXX] }
[2015-05-21 14:47:54] DEBUG com.normation.rudder.services.queries.InternalLDAPQueryProcessor - [0] |- (final query) LDAPObjectType(ou=Nodes,ou=Accepted Inventories,ou=Inventories,cn=rudder-configuration,One,LDAPObjectTypeFilter((objectClass=*)),Some(nodeHostname=XXXXXX),DNJoin,Set())
[2015-05-21 14:47:54] DEBUG com.normation.rudder.services.queries.InternalLDAPQueryProcessor - [0] |--- SearchRequest(baseDN='ou=Nodes,ou=Accepted Inventories,ou=Inventories,cn=rudder-configuration', scope=ONE, deref=NEVER, sizeLimit=0, timeLimit=0, filter='(&(objectClass=*)(nodeHostname=XXXXXX))', attrs={policyServerId, osFullName, localAdministratorAccountName, container, cn, osServicePack, createTimestamp, agentName, osName, ipHostNumber, publicKey, osVersion, nodeId, nodeHostname, objectClass})
[2015-05-21 14:47:54] DEBUG com.normation.rudder.services.queries.InternalLDAPQueryProcessor - [0] |---- 1 result(s)
[2015-05-21 14:47:54] DEBUG com.normation.rudder.services.queries.InternalLDAPQueryProcessor - [0] `-> 1 results