What practical applications does set theory have?
The purpose of set theory is not practical application in the same way that, for example, Fourier analysis has practical applications. To most mathematicians (i.e. those who are not themselves set theorists), the value of set theory is not in any particular theorem but in the language it gives us. Nowadays even computer scientists describe their basic concept - Turing machines - in the language of set theory. This is useful because when you specify an object set-theoretically there is no question what you are talking about and you can unambiguously answer any questions you might have about it. Without precise definitions it is very difficult to do any serious mathematics.
I guess another important point here is that it is hard to appreciate the role of set theory in mathematics without knowing some of the history behind the crisis of foundations in mathematics, but I don't know any particularly good references.
Your second question is more specific, so I'll give a more specific answer: to thoroughly understand the mathematics behind, say, modern physics does in fact require (among many other things) that you understand the properties of infinite sets because topology has become an important part of this mathematics, and understanding general topology depends heavily on understanding properties of infinite sets. Whether this means that set theory has any bearing on "reality" depends on how much faith you have in topological spaces as a good model for the real world.
As a specific example, the mathematics behind general relativity is called differential geometry. I think it's fair to say the development of general relativity would have been impossible without the mathematical language to express it. Differential geometry takes place on special kinds of manifolds, which are special kinds of topological spaces. So to understand differential geometry you need to understand at least some topology. And I don't think I need to justify the usefulness of general relativity!
There are many uses of infinite sets and their properties. Let me just give you a specific one from computer science. One important task in computer science is proving or verifying that programs do what they are supposed to do. When such programs involve loops and recursive calls (self-reference), we need methods for showing that the loops and recursive calls terminate, i.e., that the program won't run forever. The usual induction principle for natural numbers suffices for showing that a single loop terminates, but we need double induction for double loops, triple induction for triple loops, etc. The whole business can get very complicated when the program is more than just a simple combination of loops. Set theory helps sort it all out with the principle of transfinite induction and the calculus of (infinite) ordinal numbers. Transfinite induction covers all possible ways in which one could show that a program terminates, while the ordinal numbers are used to express how complex the proof of termination is (the bigger the number, the more complicated it is to see that the program will actually terminate).
Set theory is an extremely convenient language for being able to rigorously define and manipulate various "completed infinities" - not only just infinite sets such as the natural numbers or real numbers, but much "larger" completed infinities, such as Stone-Cech compactifications, the hyperreals, or ultrafilters, that typically need some fairly powerful set-theoretic tools, such as Zorn's lemma, to construct. One can often get by in applications using various "incomplete" and/or "finitary" substitutes for these objects, which require less set-theoretic machinery to set up (e.g. one may be able to largely avoid use of the axiom of choice), but the mathematics can become much messier when doing so.
Once one has set up a non-trivial amount of mathematics in the realm of infinite or continuous spaces, one can often derive finitary consequences (at least at a qualitative level) by using further tools such as compactness arguments or nonstandard analysis, which again are most easily discussed if one is working within a set theoretic framework. A good example of this is the Furstenberg correspondence principle that allows one to derive combinatorial statements about finite sets of integers using the infinitary language of ergodic theory, which can require a non-trivial amount of set theory to work with (e.g. when using tools such as disintegration of measures with respect to a sigma algebra). I am personally fond of using the technique of ultrafilters (or nonstandard analysis) as a bridge between the finitary world of "practical" mathematics and the infinitary world described by set theory, as discussed for instance in this blog post of mine.
(One important caveat though: if one directly uses tools such as ultrafilters or compactness to transfer infinitary results to finitary results, one often ends up with conclusions that are qualitative in nature, or quantitative only with extremely poor explicit bounds. Often, additional effort is then required to obtain quantitative finitary results with bounds that are effective enough to be useful in real-world applications. Nevertheless, the infinitary results can show the way forward, and serve as an excellent source of analogy and intuition to then develop a satisfactory quantitative finitary theory.)