Correlation sets and query properties are both used to make it possible to find specific instances of a business process in a runtime environment where several instances are running.
Correlation tokens refer to specific message parts in your process. Sometimes you may find that you want to correlate two message parts from two different interfaces. They may have what is essentially the same kind of content but use different names, so you will need to tell the system that they are analogous. You would do this with an alias. For example, you would use an alias to tell the system that whenever it encounters a message part called lastName, it should assume that it means the same as the other message part called familyName.
To illustrate how a correlation set might be used in a real world setting, imagine that you call a travel agent to ask about a trip. In this, the initial conversation, you tell the agent what you're interested in, and she gives you a quote. You tell her that you want to think about it, so she gathers some specific contact information about you (name and phone number), and you end the conversation. A week later, you have made up your mind, and you call the travel agent again and give her your contact information. With this, she is able to identify you, and pulls up your quote on her computer. You conclude your business.
In this example, the correlation set is the contact information that the agent stores so that she'll be able to recognize you in future correspondence. She does not stop everything else that she's doing while you decide what you want to do, instead she conducts similar business with other customers, and picks up your request where it left off when you re-initiate contact.
Similar to the correlation set, query properties make it possible for the runtime engine to recognize a specific process in an environment where multiple ones are running. Each process would have the same variables, but these variables would each have different values. Through the use of the query properties, a user would be able to query the runtime engine, and find a specific instance of the business process.