It says here (minute 24) that Ethereum started with some limited implementation of GHOST, but then abandoned it two weeks after launch.
Why was it abandoned?
In contradiction to the other answer on this post, Ethereum actually does not use GHOST at all. I've heard third-hand that this decision was made to "keep things simple". I don't know why the documentation wasn't changed.
The original GHOST protocol replaces Bitcoin's "longest chain" rule with a "heaviest subtree" rule, having all uncles contribute to the total difficulty, and thus the security, of a chain. In Ethereum, uncles don't count towards total difficulty. You can find relevant links to Ethereum's official Go implementation in this post.
Ethereum does, however, use a modified version of the Inclusive protocol. Roughly, in Inclusive, (1) new blocks reference multiple predecessors, (2) non-conflicting transactions of blocks outside the main chain are included in the ledger, and their miners receive some fraction of the transaction fees, and (3) miners of blocks outside the main chain receive some fraction of the base block reward.
In Ethereum, new blocks reference multiple predecessors (a parent and 0 or more uncles). While transactions in referenced uncles are not included in the ledger nor do their miners receive transactions fees, referenced uncles' miners do receive fractions of block rewards. This is meant to contribute to fairness.