There are few caused:
1. Record Type
If the object have record type, only one picklist value selected for that record type.
Analysis: user still be able to select '--None--' or a picklist value.
2. Read-Only in Page Layout
If in page payout, the picklist value is mark as Read-Only,
Analysis:
- if Default value for that field in field level (object without record type) or Default value for that field in record type is '--None--', user will not see anything value in that field.
- if a value is selected in Default value for that field in field level (object without record type) or Default value for that field in record type, user will see the default value in page layout without option to change it.
3. Read-Only in Field-Level Security
This is almost the same with point (2) above, the difference is only determined by user profile rather than to all users.
Analysis:
- if Default value for that field in field level (object without record type) or Default value for that field in record type is '--None--', user will not see anything in the page layout.
- if a value is selected in Default value for that field in field level (object without record type) or Default value for that field in record type, user will see the default value in page layout without option to change it.