Кто может дать комментарии по поводу кода PHP ООП (Code review)?
Что-то многовато таких вопросов за последние пару дней.  Часть замечаний к вашему коду есть в этом ответе. Повторюсь.
Вы же сами написали:класс для работы с многомерными пользовательскими массивами
но, тем не менее, этот класса делает все, что не лень: Работает с этими самыми массивами Соединяется с базой данных Отправляет запросы к базе данных Занимается обработкой данных
Не многовато ли для одного класса?
В итоге, мы получаем богообъект, который "умеет во всё".
Что у вас за бред написан в методе getInstance()? Зачем бросать исключение, в случае, если инстанс уже был создан.if (self::$_instance === null) {
    self::$_instance = new self($id);
} else {
    throw new Exception("Попытка повторного создания экземпляра Singleton класса");
}
return self::$_instance;
То есть, у вас теряется весь смысл (анти)паттерна синглотон. Получается, я не смогу сделать так:$instance1 = treeData::getInstance();
$instance2 = treeData::getInstance(); // Исключение!
Есть логика? Я думаю, что нет.
Почему вы храните данные для соединения с БД внутри метода? Не логично ли было бы передавать их в качестве аргументов к методам?Вы каждый раз повторяете строки с подготовкой запроса, биндингом параметров, отправкой запроса и тд. Не думали, что неплохо бы было написать какую-нибудь обертку и выполнять запросы как-нибудь так:$result = $wrapper->select("SELECT * FROM `tablename` WHERE `id` = :id", ['id' => 5]);
?
Абстрактные исключения не бросаем! Создаем свои исключения и наследуемся от них. В своем коде используем только их, дабы можно было легко обработать нужные exception'ы. Текст исключения неплохо бы было писать на английском.
Имена классов пишем с большой буквы! Скобки после методов и классов пишем на новой строке:function example() {
    // Не так
}

function example()
{
    // А вот так
}
Предлагаю придерживаться общепринятым стандартам оформления кода.
Старайтесь использовать синглтон в  таком виде по минимуму (Или вообще не использовать). Тем более, в данном случае, он вообще не нужен.
Внесу свои пять копеек. 
Во-первых, все выглядит достаточно дерьмового. А теперь к сути.
1. Хромает именование функций и их действие:
a. Если называешь методы максимально абстрактно, то они и должны выполнять абстрактные вещи, у тебя конкретные действия
b. mySerialize из той же оперы что и  mySuperUltraMegaMethodConcat2String
c. getFromDb - вообще нихрена не ясно, что делает функция, название метода должно отражать ее сущность. Этот метод можно переименовать в getById
2. Не вижу ооп, вижу сплошной статик, который равнозначен функциональщине. 
У тебя в сингтоне должно получиться что-то типа этогоclass Tree
{
private $inst;

__const() {
  return $inst === null ? new self : $inst; 
}

public function getById($id) {
   return TreeModel::find($id);
}

public function TreeSectionExist($id) {
   return !is_null($this->getById($id)) ? true : false;
}

$a = new Tree();
}
3. Не комментируйте очевидное//Запись в БД
        self::saveToDb();
Картинка с николасом кейджам.jpg