Ошибка php mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given?
Сделайте так:
while( ($cat = mysqli_fetch_assoc($result)) )
{
    if ($articles_count = mysqli_query($conection, "SELECT * FROM `articles` WHERE `categories_id`='".mysqli_real_escape_string($connection, $cat['id'])."'"))
    {
        echo '<li>' . $cat['name'] . ' ('. mysqli_num_rows($articles_count).') </li>';
    }
}
После того, как налюбуетесь на работающий без ошибки скрипт, марш-марш вперёд читать про SQL injection и защиту от него (в том числе через mysqli_real_escape_string()).
Возможно $articles_count пустой, или не содержит объект mysqli_query.
Скорей всего там false