Refresher math lesson:
The basic form of an exponential equation is a * (b ** n) + c. That's three constants (a, b, c) and one variable (n); you can throw more constants in there, like go overboard and use a * (b ** (c * n + d)) + e, but you probably won't need so many for this. It's exponential because some constant is raised to the power of some variable, and as the variable increases the result of the equation increases by much more.
You have two data points that you want an equation to cover: at level 1 the result should be 500 and at level 99 the result should be 9999. That means you have two equations to start with:
a * (b ** 1) + c = 500
a * (b ** 99) + c = 9999
When you have some number of equations and some number of things-to-solve-for, you can find a unique solution if the number of equations is >= the number of things. That's not the case here, which means there are going to be an infinite number of solutions.
One option is to eliminate a variable. I chose "a". So
b ** 1 + c = 500
b ** 99 + c = 9999
Two equations and two things so there's going to be a unique solution.
...but the math is a pain to find it. So I tweaked the equations a bit by taking the level and subtracting one.
b ** (1 - 1) + c = 500
b ** (99 - 1) + c =9999
The first equation loses one of the variables entirely (because anything ** 0 == 1) and so can be solved for the other (c=499), then that can get plugged into the other equation to solve it (b=1.0979663).
Fortunately tweaking the equations actually makes sense: at level 1 you should just be at the base stat so the exponential part shouldn't really be kicking in yet.