Похоже, вы на самом деле получаете более одного исключения. Вы проверили трассировку стека для обеих ошибок?
Я думаю, что происходит, что ваша первая функция выдает исключение MySQLE, а затем ничего не возвращает. Тогда вы, вероятно, получаете исключение NullReferenceException от любого, кто сделал вызов к базе данных.
Ваш лучший выбор - не ловить много исключений. В вашем слое данных не должно быть блоков Try / Catch, если только вы не пытаетесь удовлетворить что-то очень конкретное. Ваш бизнес-уровень должен затем отлавливать любые другие не общие исключения, которые возникают специфически для функциональности там. Наконец, ваш прикладной уровень должен обрабатывать все ваши общие исключения и сообщать о них оттуда.