What makes a transaction a SegWit transaction or a non-SegWit transaction? Can we say that if there is at least 1 input with a legacy script then the tx is a non-segwit transaction?
It depends for what purpose.
When do segwit validation rules apply?
P2WPKH/P2WSH script validity rules apply on a per-input basis.
Only inputs that spend a segwit output can have a non-empty witness.
When is extended serialization used?
BIP144 defines a new way for serializing transactions. It is used whenever at least one input has a non-empty witness. It cannot be used when all witnesses are empty (as is the case for legacy spends).
When do the malleability protections afforded by segwit apply?
Only when all (relevant) inputs are segwit inputs do these protections work. However, say a transaction has a multisig segwit input and a legacy single-sig input from yourself, you may be fine, as the single-sig input may be considered non-malleable.