$() is a newer pattern for command substitution
. It does the same thing as the backticks, but better
. The use of backticks is discouraged these days. Think of the dollar sign as indicating that it's doing basically the same thing as variable subsitution.
At for why your previous efforts failed, my first guess is a problem was with word splitting. As I mentioned, you need to enclose the entire pattern in double quotes, whether it's straight text or expanded through a variable, backticks, or $(), so that the output is read as a single entity and not as a bunch of separate words.
Finally, I guess I'm just used to using cat, as above, but you can also use bash's built-in file redirector instead: "$(<file)"