As per the Question the Picklist values you are referring to should control display of second picklist field(multi-select).
We can achieve this using javascript, JQuery, ActionFunction, ActionSupport.
As part of Maintenance:
The Question comes what to use when, for ex: What if the picklist values of the first picklist changes in the future? If we use javascript or Jquery we need to change the code as per the changed values every time using these values in a string array.
What I think as better solution is using Action support Tag to act on changing the values in picklist and a custom settings object with values in picklist1 for which the second picklist field has to get disabled. use this custom settings object in controller to update a boolean variable true or false and use it in second picklist tag to hide.
So, when ever the values in first picklist field changes, you can update the custom settings with those values so that you no need to change the code every time.
If the first picklist field values not gonna change then its always good to go with client side scripting using javascript or JQuery to implement as given above.
disabled
rather thandisable
(e.g.myElement.disabled=true
). The issue may be that you are not getting the element correctly. Have a look here to figure out how to start debugging your javascript. If you are still stuck then update your question to include the picklist field you are trying to disable and the how the javascript gets executed.