As chances são de que seu
displayWinesList() função echo é seus dados em vez de devolvê-los. Você pode modificar sua função para retornar os dados ou deixá-la como está e usar o buffer de saída para capturar os dados:
$to = "example@sqldat.com";
$subject = "WineStore Query";
ob_start();
displayWinesList($connection, $query,$region_name, $wine_type, $price);
$message = ob_get_clean();
$message = '<html>'.$message.'</html>';
$from = "example@sqldat.com";
…
Para saber com certeza, por favor, poste seu
displayWinesList() função.