Driver on material not updating
Unfortunately, not all drivers are created equal - especially when it comes to driving values in a material.... some drivers simply don't trigger their updates to propagate correctly on change of value while others do (a bug, I presume).
I've found that the most reliable source for drivers seems to be the object Custom Properties and you can use that to simultaneously drive both the material Mapping value and the shape key value - rather than using the Key to drive the material. This way you only need to adjust the Custom Property and both values (the material and the shape key) will change - rather than changing the Shape Key.
First, create the custom property by selecting Object in the Properties side panel, scrolling down to Custom Properties and clicking 'Add'.

Edit the property as desired (since you want it to drive a shape key you probably want it to have Min/Max set to the default 0.0 and 1.0) and give it a suitable name (I've left mine as 'prop').
Go to the Material and add the driver as normal (right-click the Location in the Mapping node and select Add Single Driver). Do the same with the Shape Key value.
Go to the Graph editor and select Drivers. Locate your drivers and set the type to Averaged Value, the default variable ('var') to Single Property, set it to your object and enter the Path as '[&quot;prop&quot;]' (where 'prop' is the name of the property you created). Click Update Dependencies for good measure. Do this for both of your drivers.

Now you should find that changing the Custom Property on the object should update both values. Custom Properties can be keyframed just like anything else.
One advantage of using Custom Properties is that you can put all of your 'controls' in one place - rather than having to hunt out the different panels for, say, Shape Keys, etc.
NOTE: If the driver only needs to use a value from a property or channel - rather than perform a calculation - then using Averaged Value means that you don't need to enable 'Scripting' in the Blender User Preferences. However, if you do need to use Scripted Values then you'll need to enable scripting by enabling Auto Execution in the File tab of the User Preferences.