You might be able to tweak the
code in the bellman ford algorithm (which is what negative_edge_cycle uses). At line 742 there is the heart of the algorithm called
_bellman_ford_relaxation.
I'll also give my usual qualifier that it is highly unlikely that you really want all negative cycles (or all cycles). Because cycles can be combined to create other cycles and there are just too many possibilities. You probably want some sort of cycle basis that covers all the cycles only once. Then to create other cycles you combine those basis cycles.
Finally, you can find a cycle basis using edge weights equal to 1 (using something like cycle_basis) and then go back and compute the cycle weights using the true weights. Not sure if that is what you really want though.
Good luck!
Dan