The problem probably is in the line echo $result = mysqli_query($this->conn, $sql) or die("error to delete employee data");
As I said in one comment, replacing the die string with mysqli_error($this->conn) should display an error.
However after some testing I found that assigning a variable in a echo might give strange results, i test echo $test = "hello" or die("test"); and found that neither hello nor test was displayed on the screen, but 1 was displayed, which probably was the boolean true. 
A better way to see if the query was executed could be:
    //other code that stayed the same
    $statement = mysqli_prepare($this->conn, "delete from `cusinfo` WHERE TICKET_ID=? AND AGENT_CODE_STAFF_ID IN (SELECT id FROM `users` where tm_groupid = ?)");
    $statement = mysqli_stmt_bind_param($this->conn, $params['id'], $tid); //
    $sql = msyqli_stmt_execute($statement); // returns either true or false
    if ($sql === true) {
        echo "Successfull"; // executing successfull code
    }
    else {
        var_dump(mysqli_stmt_error_list($statement)); // handling error
        die;
    }
This will handle some sql errors in a way that is expected(they are 'dumped and died').
Using prepared statements the correct way will mean that most sql injections are able to be stopped, and with a DELETE query, you want to make sure that sql injections are stopped.
Note: I am no expert on sql injections
Note 2: I would have used PDO for prepared statements though, it seems to me to be much more logical to work with