The All Star selection process is such a subjective procedure that sometimes deserving players get left off. Then there are times when players who do not deserve to be All Stars are named to the team.
In 2006, new Red Sox second-baseman Mark Loretta was elected to start the All Star game over Yankees Robinson Cano. Loretta was a fairly normal everyday middle infielder, who could hit for contact but not much else. His season line was .285/.345/.361/.706. He hit five home runs and drove in 59.
In the first half, Loretta was hitting .305/.353/.385/.738. He was certainly playing better in the first half. He also played good defense and had some clutch hits, which probably helped his case.
At the end of the year though, it's pretty weird to look at his stats and realize that he started the All Star game. It was mostly due to his team. Had to be.