I believe that there is a mixture of solutions to this answer, and Mentalist has got this half right.
You can use the child of constraint for the scale, but you will also need something like a driver to move the sphere toward the Empty when scaling happens.
Luckily this sounds like an easy enough driver solution though.
I will have to circle back around to post some detailed images, but here is the simple breakdown:
You will need to set an individual driver on the X, Y, & Z Locations of the Sphere.
You will need to calculate (for each axis - for simplicity here I'll just describe the 'X' Axis) the difference in 'X' between the Empty and the Sphere.
You will need to know the scale factor of the empty (for simplicity just use 'X' for the scale factor).
You now have what you need for the equation.
The total distance is 100% or 1.00 NO MATTER WHAT, while the scale of the Empty is 1.00 as soon as the scale changes it will calculate like this:
distance / 1 = 'Scale-X' / 'unknown'
To solve for the unknown the expression looks like this:
'Scale-X' / distance
This is the basic logic, but you have to go a little further to understand relative positioning:
is the 'X-Loc' of the Sphere <, >, OR = to that of the Empty, and change the return value accordingly.
You know what, I lied, I said this sounded simple, but it is pretty involved.
I should have said doable.
Since Mentalist's Re-Post, it spawned a simplification for the use of a driver in this case. The variation for me, is just to split the ChildOf constraint into two. One for the scale whose influence is always 100%, and another for the location, that will be driven by the actual scale factor. It effectively solved everything that I had mentioned above, but in a much more strait-forward manner.
See below for the setup of both the constraints and the driver.
See below for the result of this effort: