Can "mdfind" search for phrases and not just unordered words?
You need to escape your quotes like so:

mdfind \"I love Apple\" -onlyin ~/Documents


This results in just the one document being found:

~/Documents/test1.txt


Without escaping them, I don't think the quotes actually get passed to the mdfind command, they're just interpreted by your shell to say that I love Apple is a single argument. With the backslash-escaping, the argument then includes the quote characters.