Per your example, the contents have to be contained in the if/while statement (if they have posts). Otherwise the boxes will appear and the content will be blank, rather than the content AND boxes hidden completely as you want.
Try this:
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<div class="box">
<h2 class="archive-title" style="text-align:center">Artikel</h2>
<hr />
<ul class="postlist">
<?php if (in_category('wissen')) : ?>
<li>
<?php if (has_post_thumbnail()): ?>
<a href="https://wordpress.stackexchange.com/questions/155066/<?php the_permalink(); ?>"><?php the_post_thumbnail(array(150, 150)); ?>
<?php else: ?>
<div class="postlistfilling"></div>
<?php endif; ?>
<a class="postlisttitle" href="https://wordpress.stackexchange.com/questions/155066/<?php the_permalink(); ?>"><?php the_title(); ?></a>
<div class="pthumb">
<?php the_excerpt(); ?>
</div>
</li>
</ul>
</div>
<?php endif; endwhile; endif; ?>