You can use the following nodes to extract the scaling information :
The key here is the use of the Vector Transform node. The Vector Transform node allows you to transform a vector between different coordinate spaces - World, Object, Camera. When transforming between Object and World coordinates, blender will apply any object Translation, Rotation and Scale and this can be used to extract the scale directly without the use of drivers.
By feeding a known vector into the Vector Transform we can use the output to glean information regarding the object. In this case, the vector [1.0, 0.0, 0.0] is being transformed from Object to World space in 'Vector' mode, meaning that only the Scale and Rotation is applied (the location is ignored). We know that the vector entering the transform has a length of 1.0 and the Dot Product node used this way, followed by a Power of 0.5 (square root) will output the length of the resultant vector and this allows us to ignore the rotation - the change in length is a direct result of the scaling.
The input vector [1.0, 0.0, 0.0] will effectively read the X scale. Passing in [0.0, 1.0, 0.0] will read the Y scale, and passing in [0.0, 0.0, 1.0] the Z scale.
We can therefore use the following material to color the object based on its X, Y, Z scale as R, G, B :
For your situation you can simply use the output of one of these scales to drive your mix factor.