You are setting the into collide mask on the wrong node. environ.node() is not the CollisionNode that corresponds to your collision geometry; it’s just the top node returned by loadModel().
One solution would be to find the actual CollisionNode and call setIntoCollideMask() on that. But it would be better just to use the NodePath-level setCollideMask() method (not the PandaNode-level setIntoCollideMask() method), like this:
environ = loader.loadModel("floor.egg")
environ.setScale(20)
environ.setH(180)
environ.setPos(0,0,-100)
environ.reparentTo(render)
environ.setCollideMask(BitMask32.bit(1))
The NodePath-level method is, in general, more powerful and easier to understand than the lower-level PandaNode method.
NodePath.setCollideMask() adjusts the into collide mask of nodes at that node level and below. It is the method you should call most of the time for ordinary nodes in the world.
PandaNode.set[Into/From]CollideMask() adjusts the into or from collide mask of that particular node only. It does not traverse below to children nodes. It is the only way to set a from collide mask on a node that you are adding to the collision traverser; but there’s not usually any other time to use either of these methods.