When using type "text_format", it generates a textarea and the filter form fieldset.
But in html, fieldset element is out of the div .form-item.
When you add #states on this element, it apply only to .form-item and not on fieldset.
One solution could be to add parents jquery function on states.js to the text-format-wrapper ?, sample line 372:
$(e.target).parents('.text-format-wrapper')[e.value ? 'show' : 'hide']();
But i'm not sure it's a good way...
An other solution could be to change the way the text_format is render to add filter form fieldset in the div.form-item ?
Or perhaps you can consider it's not a bug and text_format need to be in a container or a fieldest to get states working.