Александр Вроде этот код работает
<?php
$lastChar = "А";
?>
<?php
foreach ($conndb->query($sql) as $row):
?>
<?php if ($lastChar !== ($currentChar = mb_convert_case(mb_substr($row['category_name'], 0, 1), CASE_UPPER))): ?>
<?php $lastChar = $currentChar; ?>
<h1 class="bukva" id="bukva_<?= mb_convert_case($lastChar, CASE_LOWER); ?>"><?= $lastChar; ?></h1>
<?php endif; ?>
<a href="http://localhost/menu_general/masters_page/masters/masters.php">
<div class="kategoriya">
<div class="kolichestvo">0</div>
<?php echo $row['category_name'] . "\t"; ?>
</div>
</a>
<?php
endforeach;
?>
только вместо буквы вопрос