You might have followed the steps in this thread:
What if you publish this form first, then test it in that library, will this issue still exists?
You said that it will retrieve the current login users profile on the first click. The reason may be like this: After you click the button, the query will be sent
out without taking the AccountName of the specific user. On the second click, we get the specific user from AD, then the query will retrieve the correct result.
I would suggest that you get the AccountName and save it to a hidden field first when you click the button. Then set a rule to check whether this filed contains value,
then perform the query with this value.
By doing this, we can make sure that the query will be executed with the specific AccountName.
Feel free to reply with the test result if the issue still exists.