conditional tags for the output of a plugin

You code is not wrong, probably the only problem is that you are using is_home() when you need is_front_page.

However, just for a tip, I want show how your code can be semplified a lot:

class donor_pdf_plugin extends WP_Widget {

  static $fields = array();

  // Constructor
  function donor_pdf_plugin() {
    self::$fields = array(
      'link' => __('Menu link', 'wp_widget_plugin'),
      'link1' => __('Menu link 1', 'wp_widget_plugin'),
      'link2' => __('Menu link 2', 'wp_widget_plugin'),
      'link3' => __('Menu link 3', 'wp_widget_plugin'),
      'title' => __('Menu title', 'wp_widget_plugin'),
      'title1' => __('Menu title 1', 'wp_widget_plugin'),
      'title2' => __('Menu title 2', 'wp_widget_plugin'),
      'title3' => __('Menu title 3', 'wp_widget_plugin'),
    );
    parent::WP_Widget(false, $name = __('Pdf footer description', 'donor_pdf_plugin'));
  }

  // Widget form creation
  function form($instance) {
    foreach ( self::$fields as $field => $label) {
      $value = isset($instance[$field]) ? esc_attr($instance[$field]) : '';
      $id = $this->get_field_id($field);
      printf( '<p><label for="https://wordpress.stackexchange.com/questions/116698/%s">%s</label>', $id, esc_html($label) );
      $format="<input class="widefat" id="https://wordpress.stackexchange.com/questions/116698/%s" name="https://wordpress.stackexchange.com/questions/116698/%s" type="text" value="https://wordpress.stackexchange.com/questions/116698/%s"/></p>";
      printf( $format, $id, $this->get_field_name($field), esc_attr($value) );
    }
  }

  // Widget update
  function update($new_instance, $old_instance) {
    return array_map('sanitize_text_field', $new_instance);
  }

  // Widget display
  function widget($args, $instance) {
   $class = is_front_page() ? 'white' : 'menu-widget';
   printf('<div class="https://wordpress.stackexchange.com/questions/116698/%s">', $class);
   $format="<p><a href="https://wordpress.stackexchange.com/questions/116698/%s"><img src="https://wordpress.stackexchange.com/questions/116698/%s"/><span class="pdf-description">%s</a></p>";
   $icon = IMAGES . '/pdf.png';
   for ($i=0; $i<4; $i++) {
     $u = $i == 0 ? '' : $i;
     if ( empty($instance['link' . $u]) || empty($instance['title' . $u]) ) continue;
     printf($format, esc_url($instance['link' . $u]), $icon, $instance['title' . $u]);
   }
   echo '</div>';
  }

}