wp-pagenavi getting 404 page not found

Maybe you missed the object here, and by the way why do you use query_posts() ? You can try this :

<?php  $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;

 $args = array(
   'posts_per_page' => 3,
   'paged' => $paged
); 

$query = new WP_Query($args);
if($query->have_posts()) : while($query->have_posts()) : $query->the_post(); ?>

<div id="post-<?php the_ID(); ?>" <?php post_class(); ?>>

<?php the_title('<h1 class="entry-title"><a href="' . get_permalink() . '" title="' . the_title_attribute('echo=0') . '" rel="bookmark">', '</a></h1>'); ?>

<?php endwhile;  if(function_exists('wp_pagenavi')) { wp_pagenavi($query); } ?>