how to implement Ajax callback on form_alter for entity field?
Posting my own answer, I will be happy if it helps someone. 

function custom_form_alter(&amp;$form, &amp;$form_state, $form_id) {

  if ($form_id == "article_node_form"){
    $form['field_select']['und']['#ajax'] = array(
      'callback' =&gt; 'field_select_ajax_callback', 
      'wrapper' =&gt; 'field-image', 
    );

//Note: this $form_state is set only after ajax function call (field_select_ajax_callback)
    if(isset($form_state['values']['field_select']['und'][0]['target_id'])) {
      $node_id = $form_state['values']['field_select']['und'][0]['target_id'];
      $image_path = get_image($node_id);
      $form['field_image']['und'] = array(
        '#markup' =&gt; '&lt;div class="sponsor-image"&gt; ' .$image_path. ' &lt;/div&gt;',
      );
    }
    $form['field_image']['und']['#prefix'] = '&lt;div id="field-image"&gt;';
    $form['field_image']['und']['#suffix'] = '&lt;/div&gt;';
    return $form;
  }
}

function field_select_ajax_callback($form, $form_state) {
  return $form['field_image']; // very important step, Where I did it differently from previous. 
}

function get_image($id) {
  $node_id = node_load($id);

  if(is_object($node_id)) {
    $image_uri = $node_id-&gt;field_image['und'][0]['uri'];
    $image_url = file_create_url($image_uri);
    $image = '&lt;img src="' .$image_url. '" /&gt;';
  }
  return $image;
}


Yay fixed it.