You are actually creating an anonymous class with a single member called Genre. This causes the additional nesting. Instead you can just do this:
public IEnumerable<string> getGenres()
{
var genres = (from item in data.Descendants("genre")
select item.Value).Distinct();
return genres.ToArray();
}