Workaround:
1. Edit the expression and save it with no net changes (for example add a character and then delete it) and the color expression starts to work.
2. Use backups of the apps from the pre-version 3 environment and import them into the new installation, then they should migrate successfully.
Since the original version was out of support, this was submitted as a PI: QLIK-94771.
R&D discovered that bar chart in question was using an old setup for coloring, where we had stored the variable in a different way. In version 3.0 we generalized this a bit and changes the way we store that variable (changed from from "type" to "id"). Also at this time, we also added something to the migration service, which means that any app created before 3.0 would have a "patch" applied to it, which changes that variable from "type" to "id". For some reason the app having the issue was not properly flagged for the patch to be applied.
Additional details: What we use interally to determine if the "patch" for this should be applied to an app is a flag set by engine, which indicates which version this app was last saved in. What seems to have happened is that the patch somehow wasn't applied to this app, and the apps were saved in the new version. Thus when importing the app anywhere else it will still not migrate properly with respect to the color expressions. This could have potentailly been caused by some automated changes done in the load script when the app was first loaded in the new version, causing the last saved in information to be changed before the migration was done.
R&D recommended that for this scenario, if the backups do not work or are not available, then manual work will need to be done to correct the issue in the app.