How to programmatically display a select list label instead of the value?
I think you should use entity_metadata_wrapper because when the select label changes you don't have to change your code.

Following lines will do what you want:

$wrapper = entity_metadata_wrapper('user', $result-&gt;uid);
$gender = $wrapper-&gt;field_user_gender-&gt;label();


So your code would look like:

function display_results_submissions(){
  $results = db_query("SELECT * FROM {users}");
  $header = array(t('Name'), t('Mail'), t('Gender'));
  foreach($results as $result){
    $wrapper = entity_metadata_wrapper('user', $result-&gt;uid);
    $gender = $wrapper-&gt;field_user_gender-&gt;label();
    $rows[] = array(
      $result-&gt;name,
      $result-&gt;mail,
      $gender,
    );
  }

  return theme('table', array('header' =&gt; $header, 'rows' =&gt; $rows));
}


There is a good blog post at http://www.mediacurrent.com/blog/entity-metadata-wrapper