Это поведение связано с внутренней оптимизацией интерпретатора Python - кэшированием небольших чисел [-5,256]. Оператор is проверяет, ссылаются ли две переменные на один и тот же объект в памяти, для этого маленького списка ссылки на объекты берутся из кэша, а для всех других создаются новые
#CodeDetective_MLinside