C# SerialPort.IsOpen returns true when physically disconnected the serial cable on USB port. Can any one help me how to overcome this.
That's not how serial ports work, they don't have a standard connection oriented protocol like TCP. The "IsOpen" name choice was not accidental, it doesn't say "Connected" and only indicates that an Open() call succeeded and it might be a good idea to call the Close() method when your program exits.
With some luck, you ought to see the SerialPort.DsrHolding property false when you disconnect the cable or turn the device power off. SerialPort.CtsHolding ought to indicate that the device is ready to receive data. These hardware handshake signals are not always properly implemented and they can give a false indication when the cable is disconnected due to electrical noise.
There is otherwise never a good reason to have the cable disconnected and not for anybody to be aware of it, serial port cables are always short.