Потому что вы для чего создали две экзепляра InlineKeyboardMarkup и записали их в разные переменные.
Я не совсем понимаю вашу логику, но видимо она есть
В функции
showChannels вы возвращаете keyboard, в который ничего не записано, потому что всё записывается в markup
Удалите строку
keyboard = types.InlineKeyboardMarkup(row_width=1)
И возвращайте markup:
return markup
Вот так должно быть:
def showChannels():
markup = types.InlineKeyboardMarkup()
for channel in sponsorChannels:
markup.add(types.InlineKeyboardButton(text=channel[1], url=channel[2]))
markup.add(types.InlineKeyboardButton(text="Я ПОДПИСАЛСЯ", callback_data="subchanneldone"))
return markup