Is there a way to find the Z Euler rotation value of the empty after it has been rotated through the constraint?
Yes.
There are two different ways to get an object's transform into a driver:
One way gets the raw f-curve data, by driving from a "single property", set to the appropriate path. This gets the number that you see in your transform fields when selecting the object. It takes into account f-curves, f-curve modifiers, and drivers. It does not take constraints into account. It is always in the local space of the target.
The second way is to drive from a "transform channel" in the driver. This is the value after any constraints have been applied. It is also remapped from what you might expect your raw values to be: rotations will be remapped to the -180, 180 range and Euler angles will be anti-aliased into whatever method Blender uses (like a 180,0,180 XYZ is going to be read as a 0,180,0 Euler.)
Both methods are useful. For people making rotating gear ratios, they need raw values. For you, you need the values after constraints, so use the second kind.