cooperative scheduling and xSemaphoreGive()

When cooperative scheduling is used and a task executes xSemaphoreGive(mutex) while an other task is waiting on the mutex, will there be a context-switch made into the other task?

cooperative scheduling and xSemaphoreGive()

No. The context switch will not happen until the task blocks or calls taskYIELD().