I'm not 100% sure what the circumstances of failure are, but I'm only seeing it with undeleted items that are now redirects.
This code:
import pywikibot
site = pywikibot.Site("wikidata", "wikidata")
qid = "Q124382633"
item = pywikibot.ItemPage(site, qid)
print(item.exists(), item.isRedirectPage())prints False False, but it should return True True because Q124382633 exists and is a redirect. It works as expected for Q119442711 which is also an undeleted redirect.