How do I create a post_id column, for admin posts list?

You haven’t set $post_id so there is no reason is should display. If you have debugging enabled as you should when you are working, you would have spotted the error immediately.

What you need to do is:

add_action( 'manage_posts_custom_column', 'populate_columns' );
function populate_columns( $column ) {
  global $post;
  if ($column == 'id'){
    echo $post->ID;
  }
}