Exposed filter (by terms), only to show terms related to this content type
You can use hook_form_alter to alter the exposed form:

&lt;?php
/**
 * Implements hook_form_alter().
 */
function mymodule_form_alter(&amp;$form, $form_state, $form_id) {
  if ($form_id == 'form_views_exposed_form') {
    drupal_set_message("Form ID is : " . $form_id);
  }
}
?&gt;


Just write some code that fetches all the used categories in content type A and compare those with the categories in the dropdown. Then, unset the categories that aren't used.

You can do this by building an array that has the same structure as the options in the drop down and then use array_intersect to get all the values that are shared over your custom build array and the options in the dropdown.