If you check the code for previous_posts_link function in link-template.php file i.e.
function previous_posts_link( $label = null ) {
echo get_previous_posts_link( $label );
}
// get_previous_posts_link
function get_previous_posts_link( $label = null ) {
global $paged;
if ( null === $label )
$label = __( '« Previous Page' );
if ( !is_single() && $paged > 1 ) {
$attr = apply_filters( 'previous_posts_link_attributes', '' );
return '<a href="' . previous_posts( false ) . "\" $attr>". preg_replace( '/&([^#])(?![a-z]{1,8};)/', '&$1', $label ) .'</a>';
}
}
you can clearly see that the condition is set for page > 1, means on page one it will not show the link. For this you can use PageNavi plugin or you can dig into the code to override the default behavior. One more suggestion, don't alter the core files as you will loose this functionality when you will upgrade WP.