This seems to work for me:
Create a template that displays a single post in a category which is passed in the GET variable ‘mycat’. Code similar to this:
$cat = $_GET['mycat'];
query_posts("cat=$cat&posts_per_page=1&ignore_sticky_posts=1");
if (have_posts()) {
while (have_posts()) {
the_post();
the_title();
}
} else {
// Code here for nothing found
}
Assuming that you want the button on a category page, create it like this:
<?php $cat = get_query_var('cat');
$action = get_bloginfo('url') . "/my-single-cat-page-slug/";
?>
<form action="<?php echo $action; ?>" method="get">
<input type="hidden" name="mycat" value="<?php echo $cat; ?>">
<input type="submit" value="Run me now!">
</form>