IF have_posts contains posts from a certain category

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; ?>