You could use a flag to determine the table that is fetching the month field.
Supposing you already have twelve months data in the script which would appear in a single list box, it is not possible in QlikView to have a selection pattern where white values (read: months which have data) can be selected and gray values (read: months which do not have data) can be read-only in a single object.
This is against how QlikView works .
There is the option to set the listbox as read-only, but then all your fields irrespective of whether they have data or not will be read only - which is not what you want.
However, you can just hide the months which do not have data. To do this,
Go the list box properties--General tab and check the box for Hide Excluded.
Optionally, you could use two separate list boxes for that purpose - one field showing only those months which have data and other field showing only those months which do not have data.
Hope that helps.