A statement like "rank among the best of 2015" is validly expressed in the present tense, even if we are saying this after 2015, because even 20 years later, this song could still be "the best of 2015". We often say "was the best of 2015" instead of "is the best of 2015". Either is valid. It was true then; it's still true now.
The writer of the sentence then wants to express the idea that even though these were among the best songs of 2015, he did not hear them until 2016. When he heard the song does not change when it was written. It was still "the best of 2015" even if he didn't hear it until 2092. So he shifts from the present tense, describing the ranking of these songs, to the past perfect, describing when he heard them.
There's nothing wrong with shifting tenses in the middle of a sentence. It's a perfectly correct thing to do if the times when different events happened are different. Consider, "If you went to Boston yesterday, I will go to Cleveland tomorrow." You going to Boston is in the past and calls for a past tense. Me going to Cleveland is in the future and calls for a future tense. It would be blatantly wrong to change the tenses to make them match, like "If you went to Boston yesterday, I went to Cleveland tomorrow." That doesn't make sense. My going to Cleveland is "tomorrow", so it must be in the future tense.
Yes, the sentence is a bit paradoxical in that the writer says "they rank", indicating this is an objective fact independent of his personal assessment. Then he says "had I heard them", indicating that their ranking is not an objective fact but is dependent on his having heard them. So the sentence starts out implying that the ranking is objective, external to his opinions, but ends up implying that we are talking about his opinions and not an external fact.
But that's the whole point of the sentence: he's deliberately shifting from the objective to the subjective. That kind of shift inevitably strains technicalities of grammar. To quibble over the grammar is like quibbling over the punch line of a joke, like saying, "Now wait a minute, your first sentence led me to believe that 'Sally' was your girlfriend, but now you're telling me that she is your cat? Your statements are hopelessly misleading." Well, duh. Of course it doesn't make complete sense. That's the point.