Required field set via hook_form_alter not fully working in Commerce Checkout form
Using required along with #states will add the required indicator to the element, But there will be no client or server side validation involved. So to make the field as required you would have to add the custom validation to the form and there you can validate the field something like below:

/**
 * Implements hook_form_alter().
 */
function MODULE-NAME_form_alter(&amp;$form, &amp;$form_state, $form_id) {
  // Check if the form is commerce checkout form.
  if ($form_id == 'commerce_checkout_form_checkout') {
    // Add the custom validation function to the form.
    $form['buttons']['continue']['#validate'][] = 'mymodule_custom_validate_required_field';
  }
}

/**
 * Callback handling the custom validation.
 */
function mymodule_custom_validate_required_field($form, &amp;$form_state) {
  // Check if the field you want to validate exists in the form.
  // replace 'field_dispongo_de_' with the name of field you want to validate.
  if ((isset($form_state['values']['field_dispongo_de_'])) &amp;&amp; (empty($form_state['values']['field_dispongo_de_']))) {
    form_set_error('field_dispongo_de_', 'Field cannot be left blank');
  }
}




Alternate way:  

Since its a commerce checkout form so we can add the custom validation using hook_commerce_checkout_pane_info and commerce_checkout_form_validate as discussed here: Adding validation to commerce pane form