craft.entryRevisions.getDraftsByEntryId(entry.id) is returning an empty array
Specify the locale when getting the drafts, or else it will fetch drafts for the default locale. In my case, there was only drafts for a particular locale but not the default.

{% set drafts = craft.entryRevisions.getDraftsByEntryId(entry.id, 'localeId') %}