Getting wrong output after implemented `theme_item_list`
Your code is wrong, since the items to render are in $variables['items'] not $variables as evident in theme_list_items().

function theme_item_list($variables) {
  $items = $variables['items'];
  $title = $variables['title'];
  $type = $variables['type'];
  $attributes = $variables['attributes'];

  // Omissis
}


You are confusing what the theme function gets in Drupal 7 with what the same theme function gets in Drupal 6. 

In general, in Drupal 7 what the theme functions need to render is always an index of the array $variables passed them; they never use $variables directly like your code does.

function theme_table($variables) {
  $header = $variables['header'];
  $rows = $variables['rows'];
  $attributes = $variables['attributes'];
  $caption = $variables['caption'];
  $colgroups = $variables['colgroups'];
  $sticky = $variables['sticky'];
  $empty = $variables['empty'];

  // Add sticky headers, if applicable.
  if (count($header) &amp;&amp; $sticky) {
    drupal_add_js('misc/tableheader.js');
    // Add 'sticky-enabled' class to the table to identify it for JS.
    // This is needed to target tables constructed by this function.
    $attributes['class'][] = 'sticky-enabled';
  }

  $output = '&lt;table' . drupal_attributes($attributes) . "&gt;\n";

  if (isset($caption)) {
    $output .= '&lt;caption&gt;' . $caption . "&lt;/caption&gt;\n";
  }

  // Omissis
}