Нет,
if (str1 == null)
не может выдать исключение нулевого указателя, так как ни один указатель не разыменован.
Аналог
if (obj1.getStr1() == null)
может бросить NPE в случае, если obj1 == null, или
if (str1 == null && str1.length() == 0)
сгенерирует NPE для str1.length (), когда str1 == null. (В этом случае должен был использоваться оператор ||
.)
Можете ли вы показать точную линию, на которой он разбивается, и включить трассировку стека?