Plants that are safe for ball pythons are basically anything that doesnt have spines. They're very unlikely to eat the leaves of a plant, unless they happen to strike a leaf instead of their prey during feeding time, so the chance of ingestion is very, very low.
Plants that can survive a ball python -- now that's the hard part. Ball pythons can be bulldozers; they're heavy-bodied snakes and like to squash plants if given the opportunity, so you want very hardy plants that tolerate higher humidity. Pothos, ivy, crypthanthus, snake plants, umbrella plants, pretty much anything that can take a beating is your best bet.
Before I can answer the soil question, I feel like I need to ask if you plan on going bioactive, or are you hoping to keep plants in with your snake sans the bioative aspect? If you're not going bioactive, it's usually easier to keep the plants potted and remove them for watering and cage cleanings. If you are doing bioactive, I can expand a bit more!